package leetcode;
//蓝桥杯2017年包子凑数
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class DisassemblyNumber {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[]arr=new int[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i]=sc.nextInt();
        }
        Arrays.sort(arr);

        int x=split(arr);
        if(x<0){
            System.out.println("INF");
        }
        else{
            System.out.println(x);
        }
    }



    public static int split(int[]arr){
        int j=0;int num=0;
        Set<Integer> set=new HashSet<>();
        if(arr[0]==1){
            return 0;
        }
        for (int i = 0; i <arr.length; i++) {//如果全部都是偶数则不可能形成奇数
            if(arr[i]%2!=0){
                j=1;
                break;
            }
            if(arr[i]%2==0&&i==arr.length-1){
                return -1;
            }
        }if(j==1){//有奇数
            int[]a=new int[arr[0]-1];
            for (int i = 0; i < arr[0]-1; i++) {
                a[i]=i+1;
            }
            int m,p,t,r;
            for (int i = 0; i <  a.length; i++) {p=0;

                for (int k = 0; k <arr.length; k++) {
                    m=a[i]+arr[k];
                    set.add(m);
                    p=p+arr[k];
                    m=a[i]+p;
                    set.add(m);

                } int q=0,u=0;m=0;
                for (int k = i; k < a.length; k++) {
                    m=a[i]+a[k];
                    set.add(m);
                    q=q+a[k];
                    set.add(q);
                    u=m+q;
                    set.add(u);
                    p=0;
                    for (int l = 0; l <arr.length; l++) {
                        set.add(m+arr[l]);
                        set.add(q+arr[l]);
                        set.add(u+arr[l]);
                        t=a[i]+arr[l];
                        set.add(t+m);
                        set.add(t+q);
                        set.add(t+u);
                        p=p+arr[l];
                        m=a[i]+p;
                        set.add(p+m);
                        set.add(p+q);
                        set.add(p+u);
                    }

                }
            }



            for(int s:set){
                int y=0,o=0;
                for(int x:arr){
                     o=o+x;
                    if(s%x==0||s%o==0){
                        y=0;
                        break;
                    }else{
                        y=1;
                    }
                }
                if(y==1){
                    num++;
                }
            }
        }
        return num;
    }
}

